package fileutil

import (
	"encoding/json"
	"fmt"
	"github.com/duke-git/lancet/v2/fileutil"
	"os"
)

func WriteString(path string, str string) error {
	fileutil.CreateFile(path)
	f, _ := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC, 0777)
	defer func(f *os.File) {
		err := f.Close()
		if err != nil {
			return
		}
	}(f)
	_, err := f.WriteString(str)
	return err
}

func WriteJson(path string, a any) error {
	fileutil.CreateFile(path)
	f, _ := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC, 0777)
	defer func(f *os.File) {
		err := f.Close()
		if err != nil {
			return
		}
	}(f)
	bytes, err := json.Marshal(a)
	if err != nil {
		return err
	}
	_, err = f.Write(bytes)
	return err
}

// FileExists 判断文件存在与否
func FileExists(filepath string) (exist bool) {
	// 是一个文件的指针
	fileInfo, e := os.Stat(filepath)
	// 判断文件是否不存在
	if fileInfo != nil && e == nil {
		exist = true
	} else if os.IsNotExist(e) {
		exist = false
	}
	// 这里返回可以带返回值的名，也可以不带
	return
	//return exist
}

// DelFile 删除文件
func DelFile(file string) {
	// 删除文件
	err := os.Remove(file)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(file, "文件删除成功")
}
